package com.example.demo.zaqizabatest.函数接口;

@SuppressWarnings("AlibabaEnumConstantsMustHaveComment")
public enum FunctionInterface {
    BiConsumer("BiConsumer", "BiConsumer", "表示接受两个不同类型的参数，但不返回任何结果的操作"),
    BiFunction("BiFunction", "BiFunction", "表示接受两个不同类型的参数，并返回一个其它类型的结果的操作"),
    BinaryOperator("BinaryOperator", "BinaryOperator", "表示接受两个相同类型的参数，并返回一个同一类型的结果的操作"),
    BiPredicate("BiPredicate", "BiPredicate", "表示接受两个不同诶行的参数，且返回布尔类型的结果的操作"),
    BooleanSupplier("BooleanSupplier", "BooleanSupplier", "不接受任何参数，且返回一个布尔类型的结果的操作"),
    Consumer("Consumer", "Consumer", "表示接受一个参数，但不返回任何结果的操作"),
    DoubleBinaryOperator("DoubleBinaryOperator", "DoubleBinaryOperator", "表示接受两个double类型的参数，并返回double类型结果的操作"),
    DoubleConsumer("DoubleConsumer", "DoubleConsumer", "表示接受一个double类型的参数，但不返回任何结果的操作"),
    DoubleFunction("DoubleFunction", "DoubleFunction", "表示接受一个double类型的参数，且返回一个R类型的结果的操作"),
    DoublePredicate("DoublePredicate", "DoublePredicate", "表示一个接受两个double类型的参数，且返回一个布尔类型的结果的操作"),
    DoubleSupplier("DoubleSupplier", "DoubleSupplier", "表示一个不接受任何参数，但返回布尔类型的结果的操作"),
    DoubleToIntFunction("DoubleToIntFunction", "DoubleToIntFunction", "表示接受两个double类型的参数，但返回一个int类型的结果的操作"),
    DoubleToLongFunction("DoubleToLongFunction", "DoubleToLongFunction", "表示接受两个double类型的参数，但返回一个long类型的结果的操作"),
    DoubleUnaryOperator("DoubleUnaryOperator", "DoubleUnaryOperator", "表示接受一个double类型的参数，且返回一个double类型的结果的操作"),
    Function("Function", "Function", "表示一个接受T类型的参数，且返回一个R类型结果的函数"),
    IntBinaryOperator("IntBinaryOperator", "IntBinaryOperator", "表示一个接受两个int类型的参数，且返回一个int类型的结果的操作"),
    IntConsumer("IntConsumer", "IntConsumer", "表示接受一个int类型的参数，但不返回任何结果的操作"),
    IntFunction("IntFunction", "IntFunction", "表示接受一个int类型的参数，但返回一个R类型的结果的操作"),
    IntPredicate("IntPredicate", "IntPredicate", "表示接受一个int类型的参数，但返回布尔类型的结果的操作"),
    IntSupplier("IntSupplier", "IntSupplier", "表示不接受任何参数，但返回一个int类型的结果的操作"),
    IntToDoubleFunction("IntToDoubleFunction", "IntToDoubleFunction", "表示接受一个int类型的参数，但返回一个double类型的结果的操作"),
    IntToLongFunction("IntToLongFunction", "IntToLongFunction", "表示接受一个int类型的参数，但返回一个long类型的结果的操作"),
    IntUnaryOperator("IntUnaryOperator", "IntUnaryOperator", "表示接受一个int类型的参数，且返回一个int类型的结果的操作"),
    LongBinaryOperator("LongBinaryOperator", "LongBinaryOperator", "表示接受两个long类型的参数，且返回一个long类型的结果的操作"),
    LongConsumer("LongConsumer", "LongConsumer", "表示不接受任何参数，但返回一个long类型的结果的操作"),
    LongFunction("LongFunction", "LongFunction", "表示接受一个loing类型的参数，但返回一个R类型的结果的操作"),
    LongPredicate("LongPredicate", "LongPredicate", "表示接受一个long类型的参数，但返回布尔类型的结果的操作"),
    LongSupplier("LongSupplier", "LongSupplier", "表示不接受任何参数，但返回一个long类型的结果的操作"),
    LongToDoubleFunction("LongToDoubleFunction", "LongToDoubleFunction", "表示接受一个long类型的参数，但返回一个double类型的结果的函数"),
    LongToIntFunction("LongToIntFunction", "LongToIntFunction", "表示接受一个long类型的参数，但返回int类型的结果的函数"),
    LongUnaryOperator("LongUnaryOperator", "LongUnaryOperator", "表示接受一个long类型的参数，并返回一个long类型的结果的操作"),
    ObjDoubleConsumer("ObjDoubleConsumer", "ObjDoubleConsumer", "表示接受两个参数，一个为T类型的对象，另一个double类型，但不返回任何结果的操作"),
    ObjIntConsumer("ObjIntConsumer", "ObjIntConsumer", "表示接受两个参数，一个为T类型的对象，另一个int类型，但不返回任何结果的操作"),
    ObjLongConsumer("ObjLongConsumer", "ObjLongConsumer", "表示接受两个参数，一个为T类型的对象，另一个double类型，但不返回任何结果的操作"),
    Predicate("Predicate", "Predicate", "表示接受一个指定类型T的参数，但返回布尔类型的结果的操作"),
    Supplier("Supplier", "Supplier", "表示不接受任何参数，但返回一个T类型的结果的操作"),
    ToDoubleBiFunction("ToDoubleBiFunction", "ToDoubleBiFunction", "表示接受两个不同类型的参数，但返回一个double类型的结果的操作"),
    ToDoubleFunction("ToDoubleFunction", "ToDoubleFunction", "表示一个接受指定类型T的参数，并返回一个double类型的结果的操作"),
    ToIntBiFunction("ToIntBiFunction", "ToIntBiFunction", "表示接受两个不同类型的参数，但返回一个int类型的结果的操作"),
    ToIntFunction("ToIntFunction", "ToIntFunction", "表示一个接受指定类型T的参数，并返回一个int类型的结果的操作"),
    ToLongBiFunction("ToLongBiFunction", "ToLongBiFunction", "表示接受两个不同类型的参数，但返回一个long类型的结果的操作"),
    ToLongFunction("ToLongFunction", "ToLongFunction", "表示一个接受指定类型的参数，并返回一个long类型的结果的操作"),
    UnaryOperator("UnaryOperator", "UnaryOperator", "表示接受一个参数，并返回一个与参数类型相同的结果的操作"),

    ;

    private String name;

    private String value;

    private String description;

    FunctionInterface(String name, String value, String description) {
        this.name = name;
        this.value = value;
        this.description = description;
    }


    public String getName() {
        return name;
    }

    public String getValue() {
        return value;
    }

    public String getDescription() {
        return description;
    }
}
